From: Marco Trevisan (TreviƱo) Date: Fri, 5 Jun 2020 14:12:58 +0000 (+0200) Subject: shell-mime-sniffer: Ignore invalid file content type X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~308 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=46547ae02797558699510595b27857b80c027b5b;p=gnome-shell.git shell-mime-sniffer: Ignore invalid file content type The shell mime sniffer goes through all the files in a directory, however in case a file content type is not recognized, the GIO function g_file_info_get_content_type() may return NULL, causing a crash when looking up into the content type tables, as they are supposed to contain strings only and they use `g_str_hash` has func, which doesn't support NULL values. So, in case we get an invalid content type, let's just ignore it, without adding it to the cache as we do in the nautilus code that was inspiring the sniffer. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2643 --- diff --git a/src/hotplug-sniffer/shell-mime-sniffer.c b/src/hotplug-sniffer/shell-mime-sniffer.c index 6c56ecbaf..7a1c1fe89 100644 --- a/src/hotplug-sniffer/shell-mime-sniffer.c +++ b/src/hotplug-sniffer/shell-mime-sniffer.c @@ -253,7 +253,9 @@ deep_count_one (DeepCountState *state, else { content_type = g_file_info_get_content_type (info); - add_content_type_to_cache (state, content_type); + + if (content_type) + add_content_type_to_cache (state, content_type); } }